

package com.maoshi.shop.distribution.comment.model;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.maoshi.shop.common.serializer.json.ImgJsonSerializer;
import com.maoshi.shop.distribution.comment.dto.DistributionUserAchievementDataDto;
import com.maoshi.shop.distribution.comment.vo.DistributionUserVO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;

@Data
@TableName("tz_distribution_user")
public class DistributionUser implements Serializable {

    /**
     * 促销员表
     */
    @TableId(type = IdType.AUTO)
    private Long distributionUserId;

    /**
     * 店铺id
     */
    private Long shopId;

    /**
     * 卡号
     */
    private String cardNo;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 上级id
     */
    private Long parentId;

    /**
     * 上级促销员ids （如：1,2,3）最上级处于最前面的位置
     */
    private String parentIds;

    /**
     * 层级（0顶级）
     */
    private Integer grade;

    /**
     * 关联等级id
     */
    private Integer level;

    /**
     * 分组id
     */

    private Long groupId;

    /**
     * 绑定时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date bindTime;

    /**
     * 状态(-1封禁 0 待审核 1 正常 2 清退 3 审核未通过，需要重新申请)
     */
    private Integer state;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 手机号码
     */
    private String userMobile;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 身份证号
     */
    private String identityCardNumber;

    /**
     * 身份证正面
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String identityCardPicFront;

    /**
     * 身份证背面
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String identityCardPicBack;

    /**
     * 手持身份证照片
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String identityCardPicHold;

    /**
     * 头像
     */
    private String pic;

    /**
     * 上级分销员
     */
    @TableField(exist = false)
    private DistributionUserVO parentDistributionUser;

    /**
     * 分销员收入记录
     */
    @TableField(exist = false)
    private DistributionUserIncome distributionUserIncome;

    /**
     * 分销员等级
     */
    @TableField(exist = false)
    private DistributionLevel distributionLevel;

    /**
     * 分销员各项数据
     */
    @TableField(exist = false)
    private DistributionUserAchievementDataDto distributionUserAchievementDataDto;

}
